package ar.pegasus.clasificador.entidades.intermedio;

import java.io.Serializable;
import java.sql.ResultSet;
import java.sql.SQLException;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Transient;

import ar.pegasus.clasificador.entidades.ElementoAplicacion;
import ar.pegasus.framework.util.jdbc.InstantiateFromResultSet;

@Entity
@Table(name="datosOriginales")
public class DatosBaseExcel implements InstantiateFromResultSet,Serializable {
	private static final long serialVersionUID = 7338483030915013784L;

	private int id;
	private String localidad;	
	private String tipo;	
	private String cd;	
	private String nro;	
	private String nombre;	
	private String ca;	
	private String ant;	
	private String cp;	
	private String pos;	
	private String ver;	
	private String desde;	
	private String hasta;	
	private String circ;	
	private String observaciones;
	private int seccion;

	public DatosBaseExcel(){
		
	}
	
	public DatosBaseExcel(ResultSet rs) throws SQLException {
		setData(rs);
	}

	@Id
    @Column(name="p_id")
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	
	public String getLocalidad() {
		return localidad;
	}

	public void setLocalidad(String localidad) {
		this.localidad = localidad;
	}

	public String getTipo() {
		return tipo;
	}

	public void setTipo(String tipo) {
		this.tipo = tipo;
	}

	public String getCd() {
		return cd;
	}

	public void setCd(String cd) {
		this.cd = cd;
	}

	public String getNro() {
		return nro;
	}

	public void setNro(String nro) {
		this.nro = nro;
	}

	public String getNombre() {
		return nombre;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	public String getCa() {
		return ca;
	}

	public void setCa(String ca) {
		this.ca = ca;
	}

	public String getAnt() {
		return ant;
	}

	public void setAnt(String ant) {
		this.ant = ant;
	}

	public String getCp() {
		return cp;
	}

	public void setCp(String cp) {
		this.cp = cp;
	}

	public String getPos() {
		return pos;
	}

	public void setPos(String pos) {
		this.pos = pos;
	}

	public String getVer() {
		return ver;
	}

	public void setVer(String ver) {
		this.ver = ver;
	}

	public String getDesde() {
		return desde;
	}

	public void setDesde(String desde) {
		this.desde = desde;
	}

	public String getHasta() {
		return hasta;
	}

	public void setHasta(String hasta) {
		this.hasta = hasta;
	}

	public String getCirc() {
		return circ;
	}

	public void setCirc(String circ) {
		this.circ = circ;
	}

	public String getObservaciones() {
		return observaciones;
	}

	public void setObservaciones(String observaciones) {
		this.observaciones = observaciones;
	}

	@Override
	public void setData(ResultSet rs) throws SQLException {
		setLocalidad(getDatoString(rs.getString(1)));
		setTipo(getDatoString(rs.getString(2)));	
		setCd(getDatoString(rs.getString(3)));
		setNro(getDatoString(rs.getString(4)));	
		setNombre(getDatoString(rs.getString(5)));	
		setCa(getDatoString(rs.getString(6)));	
		setAnt(getDatoString(rs.getString(7)));	
		setCp(getDatoString(rs.getString(8)));	
		setPos(getDatoString(rs.getString(9)));	
		setVer(getDatoString(rs.getString(10)));	
		setDesde(getDatoString(rs.getString(11)));	
		setHasta(getDatoString(rs.getString(12)));	
		setCirc(getDatoString(rs.getString(13)));	
		setObservaciones(getDatoString(rs.getString(14)));
		setSeccion(rs.getInt(15));
	}
	
	private String getDatoString(String valor) {
		return (valor == null)?null:valor.trim();
	}

	@Transient
	public ElementoAplicacion getElementoAplicacion(){
		return null;
	}

	public void setSeccion(int seccion) {
		this.seccion = seccion;
	}

	public int getSeccion() {
		return seccion;
	}
	
	@Override
	public String toString(){
		return "Localidad: " + getLocalidad() + " Calle: " + getNombre(); 
	}
}
